
using Nop.Core;
using Nop.Core.Domain.Common;
using Nop.Core.Domain.Customers;
using Nop.Core.Domain.XJ;
using System.Collections.Generic;

namespace Nop.Services.XJ
{
	/// <summary>
	/// XJEquipmentStockIn service
	/// </summary>
	public partial interface IXJEquipmentStockInService
	{
		/// <summary>
		/// Gets all XJEquipmentStockIns
		/// </summary>
		/// <returns>XJEquipmentStockIn</returns>
		IList<XJEquipmentStockIn> GetAllXJEquipmentStockIns();

		IPagedList<XJEquipmentStockInTemp> GetAllStockIns(
			string sNo = "",
			string wNo = "",
			int departmentId = 0,
			int customerId = 0,
			int minState = 0,
			int state = 0,
			int pageIndex = 0,
			int pageSize = int.MaxValue);

		IPagedList<XJEquipmentStockIn> GetMessages(Customer customer, int pageIndex = 0, int pageSize = int.MaxValue);

		/// <summary>
		/// Gets a XJEquipmentStockIn 
		/// </summary>
		/// <param name="xJEquipmentStockInId">XJEquipmentStockIn identifier</param>
		/// <returns>XJEquipmentStockIn</returns>
		XJEquipmentStockIn GetXJEquipmentStockInById(int xJEquipmentStockInId);

		XJEquipmentStockIn GetStockInByCustomerId(int customerId);

		/// <summary>
		/// Inserts a XJEquipmentStockIn
		/// </summary>
		/// <param name="xJEquipmentStockIn">XJEquipmentStockIn</param>
		void InsertXJEquipmentStockIn(XJEquipmentStockIn xJEquipmentStockIn);

		/// <summary>
		/// Updates the XJEquipmentStockIn
		/// </summary>
		/// <param name="xJEquipmentStockIn">XJEquipmentStockIn</param>
		void UpdateXJEquipmentStockIn(XJEquipmentStockIn xJEquipmentStockIn);

		/// <summary>
		/// Deletes a XJEquipmentStockIn
		/// </summary>
		/// <param name="XJEquipmentStockIn">XJEquipmentStockIn</param>
		void DeleteXJEquipmentStockIn(XJEquipmentStockIn xJEquipmentStockIn);

		string GenerateNo();

		ResultModel In(int xJEquipmentStockInId, bool pass, Customer customer);
	}
}

